<!doctype html>
<script src="/resources/testharness.js"></script>
<script src="/resources/testharnessreport.js"></script>
<script>
async_test(t => {
  let start_length = navigation.entries().length;
  let start_index = navigation.currentEntry.index;
  let key = navigation.currentEntry.key;
  let id = navigation.currentEntry.id;

  history.pushState("hash", "", "#hash");
  assert_not_equals(key, navigation.currentEntry.key);
  assert_not_equals(id, navigation.currentEntry.id);
  assert_equals(navigation.entries().length, start_length + 1);
  assert_equals(navigation.currentEntry.index, start_index + 1);

  window.onpopstate = t.step_func_done(() => {
    assert_equals(key, navigation.currentEntry.key);
    assert_equals(id, navigation.currentEntry.id);
    assert_equals(navigation.entries().length, start_length + 1);
    assert_equals(navigation.currentEntry.index, start_index);
  });
  history.back();
}, "NavigationHistoryEntry's key and id on same-document back navigation");
</script>
